export default {
  rules: [{
    name: 'mobile',
    validator: {
      messages: {
        zh_CN: '请输入正确的手机号'
      },
      validate: (value, args) => {
        // return value.length === 11 && /^1[3-9]{1}\d{9}$/.test(value)
        // eslint-disable-next-line no-useless-escape
        return value.length === 11 &&
          /^1[3-9]{1}\d{9}$/.test(value)
        // /^((13[4-9])|(147)|(15[0-2,7-9])|(17[8])|(18[2-4,7-8]))\d{8}|(170[5])\d{7}$/.test(value) || // 中国移动
        // /^((13[0-2])|(145)|(15[5-6])|(17[156])|(18[5,6]))\d{8}|(170[4,7-9])\d{7}$/.test(value) || // 中国联通
        // /^((133)|(149)|(153)|(17[3,7])|(18[0,1,9]))\d{8}|(170[0-2])\d{7}$/.test(value) // 中国电信
      }
    }
  },
  {
    name: 'telephone',
    validator: {
      messages: {
        zh_CN: '请输入正确的联系电话'
      },
      validate: (value, args) => {
        // return value.length === 11 && /^1[3-9]{1}\d{9}$/.test(value)
        // eslint-disable-next-line no-useless-escape
        return /^(^0\d{2}-?\d{8}$)|(^0\d{3}\-?\d{7,8}$)|(^\(0\d{2}\)\-?\d{8}$)|(^\(0\d{3}\)\-?\d{7,8}$)||(^(400)-(\d{3})-(\d{4})(.)(\d{1,4})$)|(^(400)-(\d{3})-(\d{4}$))$/.test(value) ||
          /^1[3-9]{1}\d{9}$/.test(value)
        // /^((13[4-9])|(147)|(15[0-2,7-9])|(17[8])|(18[2-4,7-8]))\d{8}|(170[5])\d{7}$/.test(value) || // 中国移动
        // /^((13[0-2])|(145)|(15[5-6])|(17[156])|(18[5,6]))\d{8}|(170[4,7-9])\d{7}$/.test(value) || // 中国联通
        // /^((133)|(149)|(153)|(17[3,7])|(18[0,1,9]))\d{8}|(170[0-2])\d{7}$/.test(value) // 中国电信
      }
    }
  },
  {
    name: 'msgcode',
    validator: {
      messages: {
        zh_CN: '短信验证码不正确'
      },
      validate: (value, args) => {
        return value.length === 4
      }
    }
  },
  {
    // 验证企业名称合法性
    name: 'spcompany',
    validator: {
      messages: {
        zh_CN: '企业名称不合法'
      },
      validate: (value, args) => {
        return value.length <= 23
      }
    }
  },
  {
    // 验证不合法的字符
    name: 'specialchar',
    validator: {
      messages: {
        zh_CN: '不能包含特殊字符'
      },
      validate: (value, args) => {
        return /^[\u4E00-\u9FA5A-Za-z0-9_]+$/.test(value)
      }
    }
  },
  {
    // 字符串比较大小
    name: 'max_str',
    validator: {
      messages: {
        zh_CN: '--'
      },
      validate: (value, [target]) => {
        return !target || value < target
      }
    }
  },
  {
    // 字符串比较大小
    name: 'min_str',
    validator: {
      messages: {
        zh_CN: '--'
      },
      validate: (value, [target]) => {
        return !target || value > target
      }
    }
  },
  {
    // 价格,最多2位小数
    name: 'price',
    validator: {
      messages: {
        zh_CN: '--'
      },
      validate: (value, [target = 2]) => {
        if (!value) return true
        if (/^\d*[1-9]\d*$|^\d+\.\d*[0-9]\d*$/.test(value + '') === false) {
          return false
        }
        const vls = (value + '').split('.')
        return vls.length === 1 || vls[1].length <= (target === undefined ? 2 : target)
      }
    }
  },
  {
    // 价格,最多2位小数
    name: 'price_have_zero',
    validator: {
      messages: {
        zh_CN: '--'
      },
      validate: (value, [target = 2]) => {
        if (!value) return true
        if (/^\d*[0-9]\d*$|^\d+\.\d*[0-9]\d*$/.test(value + '') === false) {
          return false
        }
        const vls = (value + '').split('.')
        return vls.length === 1 || vls[1].length <= (target === undefined ? 2 : target)
      }
    }
  },
  {
    // 非负整数
    name: 'int',
    validator: {
      messages: {
        zh_CN: '--'
      },
      validate: (value, [target]) => {
        if (!value) return true
        return /^([0-9]\d*)$/.test(value + '')
      }
    }
  },
  {
    // 非负数
    name: 'plus',
    validator: {
      messages: {
        zh_CN: '--'
      },
      validate: (value, [target]) => {
        if (!value) return true
        return /^\d*[1-9]\d*$|^\d+\.\d*[0-9]\d*$/.test(value + '')
      }
    }
  },
  {
    // 活动描述必填规则
    name: 'requireddesc',
    validator: {
      messages: {
        zh_CN: '--'
      },
      validate: (value, [target]) => {
        return !!value
      }
    }
  },
  {
    // 必须选择验证
    name: 'requiredchoose',
    validator: {
      messages: {
        zh_CN: '--'
      },
      validate: (value, [target]) => {
        return value !== undefined && value !== '' && value !== null && value !== 0
      }
    }
  }
  ]
}
